The present invention relates generally to data convertors and more particularly to apparatus for converting facsimile coded data to video data.
Facsimile machines are used for transmitting a document or picture from a first location to a second location over communication lines, such as telephone lines, without the necessity of physically transporting the document or picture. Such facsimile machines scan the information bearing document on a line by line basis. The facsimile machines then produce a particular code indicative of the information content of the document or picture. The code is then sent over communication lines to a similar facsimile machine. The second facsimile machine then interprets the code received and uses a printer to reproduce the original document or picture.
The scanning of the information bearing document, the definition of the transmitted codes, the transmission of the codes, and the printing of the copy of the document are all standard, known elements in facsimile machines. An example of the transmitted codes are defined by International Telegraph and Telephone Consultative Committee (CCITT) specifications. All facsimile machines adhering to this specification can then decode the information and reconstruct the original information bearing document.
CCITT codes are transmitted between one of several varieties of facsimile machines. The apparatus and method of the present invention can be used in decoding facsimile coded data which results from CCITT group 3 codes or rather those codes required of a CCITT group 3 facsimile machine. Group 3 codes are defined in two varities; namely, one dimensional (1D) codes and two dimensional (2D) codes. 1D codes interpret the information content of one line, namely the current line being scanned and the code produced is indicative of the serial run lengths of the information contained therein and result in Huffman codes being produced. Similarly the receiving facsimile machine receives the Huffman codes and reproduces the information bearing document by converting the serial run lengths of the Huffman codes by printing the document on a line by line basis. 2D codes interpret not only the current line but are also dependent on the information content of a previous line, usually the previous line scanned. 2D codes compress the information content of an information bearing document into a fewer number of bits than 1D codes resulting in decreased transmission times, but require a more complicated decoder. While encoding or decoding a document containing printing or graphical information, on many occasions a vertical or other vertically correlated edge (or line) will be present in the document. In order to accurately reflect these vertical correlations it is advantageous to compare the vertical correlation of a change in the binary information content of a current line with a change in the binary information content of a previous line (usually the prior line).
The scanning during encoding of a document and printing after decoding is usually accomplished on a line by line basis. Each line is divided into a predetermined number of elements called picture elements. The information bearing document or picture is scanned and encoded in a binary (i.e. black and white) basis. All discrete picture elements (PELs) are represented as either black or white (with a representation in binary language of either a 1 or a 0). A change in the binary information content of the information bearing document is a change (black to white, e.g. 1 to 0; or white to black, e.g. 0 to 1) in the representation of the color (black or white) of the picture element currently being scanned or decoded (the current picture element) from the color (black or white) of the picture element of the last scanned or decoded picture element (prior picture element). Hence a color change refers to a change in color (black and white) of the picture elements.
2D codes represent the encoding of the vertical correlation between a color change between picture elements and the current line with a color change between picture elements in a prior line, usually the previous line as well as incorporating the run length capabilities of 1D codes. Such vertical correlation may be exactly vertical or the correlation may be within a certain predetermined range of vertical. In a typical facsimile machine in coding situation, a "window" is defined by examining vertical correlation within three horizontal (if the document is being scanned horizontally) picture elements. Thus, the "vertical correlations" considered are a "vertical 0 (V0)", with a color change in a previous line exactly vertical with the color change in the current line, "vertical left 3 (VL3)", with a color change in a prior line occurring three elements to the left of a color change in the current line, and correspondingly a "vertical left 2 (VL2)", a "vertical left 1 (VL1)", a "vertical right 1 (VR 1)", a "vertical right 2 (VR2)" and a "vertical right 3 (VR3)".
Further a decoding apparatus and method of the scope of the present invention is required to perform in a number of other different modes. These modes are supplied by an external command along a command interface supplied to the decoder. Examples of other modes of operation include an ASCII mode which converts binary data to a 7.times.11 dot matrix pattern for printing and a self diagnostic mode which produces standard test patterns to adequately query the decoder to ensure its proper operation.
Thus a decoder of the scope of the present invention must be versatile while still being fast enough to transmit an entire information bearing document within a reasonable length of time.
Pure hardware implementations for decoding facsimile coded data have been accomplished in the prior art. These implementations suffer the disadvantage of not being versatile. Pure hardware implementations must have specific hardware in order to perform each individual task. This hardware and its resultant function is not easily upgraded if, for example, the CCITT specification changes or a new specification is produced. If this occurs, then a new hardware design is required.
It is anticipated that a pure software solution for converting facsimile coded data to video data could also be achieved. Such a solution would be extremely flexible in order to change the decoding alogorithm it would only be necessary to load a new program or to replace a program contained in read only memory. However, such a pure software solution would result in very slow decoding. The number of codes required to adequately describe a given document would make the decoder very slow and the resultant transmission time of the document long.